// index.js
// 获取应用实例
const cake = require('../../api/cake.js')
const app = getApp()
const url = require("../../utils/request.js")
Page({
  data: {
    motto: 'Hello World',
    userInfo: {},
    baseURL: url.baseURL + "cake/",
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    navbarData: {
      showCapsule: true, //是否显示左上角图标
      title: '蛋糕定制', //导航栏 中间的标题
      isHome: true
    },
    types: [],
    cakes: [],
    total: 0,
    page: 1,
    activeId: 0,
    // 此页面 页面内容距最顶部的距离
    height: app.globalData.height * 2 + 20 ,   
  },
  // 事件处理函数
  bindViewTap() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onLoad() {
    cake.types().then((res) =>{
      this.setData({
        types: res.data
      })
    })
    cake.cakeinfos(1, 0).then((res)=>{
      // console.log(res.data);
      this.setData({
        cakes: res.data.data,
        total: res.data.total,
      })
    })
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else if (this.data.canIUse) {
      // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
  },
  getUserInfo(e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  },
  
  changeCakeClass: function(e) {
    let item = e.currentTarget.dataset['cake'];
    cake.cakeinfos(1, item.classId).then((res)=>{
      // console.log(res.data);
      this.setData({
        activeId: item.classId,
        cakes: res.data.data
      })
    })
  },

  onPullDownRefresh: function(){
    // 显示加载图标
    wx.showLoading({
      title: '玩命加载中',
    })
    cake.cakeinfos(1, 0).then((res)=>{
       // 隐藏加载框
       wx.hideLoading();
       // 隐藏导航栏加载框
       wx.hideNavigationBarLoading();
       // 停止下拉动作
       wx.stopPullDownRefresh();
      this.setData({
        cakes: res.data.data,
        total:res.data.total,
        page:1,
        activeId:0,
      })
    })
  },
  onShow (){
    this.setData({
      activeId: 0,
    })
    this.onLoad()
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // 显示加载图标
    let i = this.data.cakes
    if(i.length == this.data.total){
      wx.showToast({
        title: '没有更多数据了',
        icon: 'none',
        duration: 2000
      })
      return
    }else{
      wx.showLoading({
        title: '玩命加载中',
      })
    }
    this.setData({page:this.data.page+1})
    cake.cakeinfos(this.data.page, this.data.activeId).then((res)=>{
      // console.log(res.data);
      i.push(...res.data.data)
       // 隐藏加载框
       wx.hideLoading();
       // 隐藏导航栏加载框
       wx.hideNavigationBarLoading();
       // 停止下拉动作
       wx.stopPullDownRefresh();
      this.setData({
        cakes: i
      })
    })
  },
  cakeDetail: function(e){
    let item = e.currentTarget.dataset['id'];
    wx.navigateTo({
      url: '/pages/cake-deatils/index?id='+item
    })
  }
})
